{
  "bundles": [
    {
      "@type": "NXBundle",
      "artifactId": "nuxeo-drive-core",
      "artifactVersion": "2023.22.13",
      "bundleGroup": {
        "@type": "NXBundleGroup",
        "bundleIds": [
          "org.nuxeo.drive.core",
          "org.nuxeo.drive.elasticsearch",
          "org.nuxeo.drive.mongodb",
          "org.nuxeo.drive.operations",
          "org.nuxeo.drive.rest.api"
        ],
        "hierarchyPath": "/grp:org.nuxeo.ecm/grp:org.nuxeo.drive",
        "id": "grp:org.nuxeo.drive",
        "name": "org.nuxeo.drive",
        "parentIds": [
          "grp:org.nuxeo.ecm"
        ],
        "readmes": [
          {
            "blobProviderId": "default",
            "content": "# Nuxeo Drive Server\n\nAddon needed for [Nuxeo Drive](https://github.com/nuxeo/nuxeo-drive) to work against a Nuxeo Platform instance.\n\n# Building\n\n    mvn clean install\n\n## Deploying\n\nInstall [the Nuxeo Drive Marketplace Package](https://connect.nuxeo.com/nuxeo/site/marketplace/package/nuxeo-drive).\nOr manually copy the built artifacts into `$NUXEO_HOME/templates/custom/bundles/` and activate the \"custom\" template.\n\nYou should then have the 'Nuxeo Drive' tab in your Home allowing you to download the Nuxeo Drive client for your favorite OS :-)\n\n# About Nuxeo\n\nNuxeo dramatically improves how content-based applications are built, managed and deployed, making customers more agile, innovative and successful. Nuxeo provides a next generation, enterprise ready platform for building traditional and cutting-edge content oriented applications. Combining a powerful application development environment with SaaS-based tools and a modular architecture, the Nuxeo Platform and Products provide clear business value to some of the most recognizable brands including Verizon, Electronic Arts, Sharp, FICO, the U.S. Navy, and Boeing. Nuxeo is headquartered in New York and Paris. More information is available at www.nuxeo.com.\n",
            "digest": "306b3963ae3cd8b8df650083c958429f",
            "encoding": "UTF-8",
            "length": 1224,
            "mimeType": "text/plain",
            "name": "README.md"
          }
        ],
        "version": "2023.22"
      },
      "bundleId": "org.nuxeo.drive.core",
      "components": [
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.drive.service.impl.NuxeoDriveManagerImpl",
          "declaredStartOrder": 96,
          "documentation": "\n    The NuxeoDriveManager provides simple API to manage the\n    list of folderish documents to be used as synchronization root with a\n    local filesystem folder of the Desktop computer of a user.\n  \n",
          "documentationHtml": "<p>\nThe NuxeoDriveManager provides simple API to manage the\nlist of folderish documents to be used as synchronization root with a\nlocal filesystem folder of the Desktop computer of a user.\n</p><p></p>",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.drive.service.impl.NuxeoDriveManagerImpl",
              "descriptors": [
                "org.nuxeo.drive.service.impl.ChangeFinderDescriptor"
              ],
              "documentation": "\n      @author Antoine Taillefer (ataillefer@nuxeo.com)\n      @since 7.3\n\n      This extension point lets you contribute the change finder used by the NuxeoDriveManager.\n\n      Example of the AuditChangeFinder:\n      <code>\n    <extension point=\"changeFinder\" target=\"org.nuxeo.drive.service.impl.NuxeoDriveManagerImpl\">\n        <changeFinder class=\"org.nuxeo.drive.service.impl.AuditChangeFinder\"/>\n    </extension>\n</code>\n",
              "documentationHtml": "<p>\n&#64;since 7.3\n</p><p>\nThis extension point lets you contribute the change finder used by the NuxeoDriveManager.\n</p><p>\nExample of the AuditChangeFinder:\n</p><p></p><pre><code>    &lt;extension point&#61;&#34;changeFinder&#34; target&#61;&#34;org.nuxeo.drive.service.impl.NuxeoDriveManagerImpl&#34;&gt;\n        &lt;changeFinder class&#61;&#34;org.nuxeo.drive.service.impl.AuditChangeFinder&#34;/&gt;\n    &lt;/extension&gt;\n</code></pre><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm/grp:org.nuxeo.drive/org.nuxeo.drive.core/org.nuxeo.drive.service.impl.NuxeoDriveManagerImpl/ExtensionPoints/org.nuxeo.drive.service.impl.NuxeoDriveManagerImpl--changeFinder",
              "id": "org.nuxeo.drive.service.impl.NuxeoDriveManagerImpl--changeFinder",
              "label": "changeFinder (org.nuxeo.drive.service.impl.NuxeoDriveManagerImpl)",
              "name": "changeFinder",
              "version": "2023.22.13"
            }
          ],
          "extensions": [],
          "hierarchyPath": "/grp:org.nuxeo.ecm/grp:org.nuxeo.drive/org.nuxeo.drive.core/org.nuxeo.drive.service.impl.NuxeoDriveManagerImpl",
          "name": "org.nuxeo.drive.service.impl.NuxeoDriveManagerImpl",
          "requirements": [
            "org.nuxeo.ecm.core.cache.CacheService"
          ],
          "resolutionOrder": 185,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.drive.service.impl.NuxeoDriveManagerImpl",
              "hierarchyPath": "/grp:org.nuxeo.ecm/grp:org.nuxeo.drive/org.nuxeo.drive.core/org.nuxeo.drive.service.impl.NuxeoDriveManagerImpl/Services/org.nuxeo.drive.service.NuxeoDriveManager",
              "id": "org.nuxeo.drive.service.NuxeoDriveManager",
              "overriden": false,
              "version": "2023.22.13"
            }
          ],
          "startOrder": 769,
          "version": "2023.22.13",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.drive.service.impl.NuxeoDriveManagerImpl\"\n  version=\"1.0\">\n  <require>org.nuxeo.ecm.core.cache.CacheService</require>\n  <implementation class=\"org.nuxeo.drive.service.impl.NuxeoDriveManagerImpl\" />\n\n  <service>\n    <provide interface=\"org.nuxeo.drive.service.NuxeoDriveManager\" />\n  </service>\n\n  <documentation>\n    The NuxeoDriveManager provides simple API to manage the\n    list of folderish documents to be used as synchronization root with a\n    local filesystem folder of the Desktop computer of a user.\n  </documentation>\n\n  <extension-point name=\"changeFinder\">\n\n    <documentation>\n      @author Antoine Taillefer (ataillefer@nuxeo.com)\n      @since 7.3\n\n      This extension point lets you contribute the change finder used by the NuxeoDriveManager.\n\n      Example of the AuditChangeFinder:\n      <code>\n        <extension\n          target=\"org.nuxeo.drive.service.impl.NuxeoDriveManagerImpl\"\n          point=\"changeFinder\">\n          <changeFinder class=\"org.nuxeo.drive.service.impl.AuditChangeFinder\" />\n         </extension>\n      </code>\n\n    </documentation>\n\n    <object class=\"org.nuxeo.drive.service.impl.ChangeFinderDescriptor\" />\n\n  </extension-point>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/nuxeodrive-service.xml",
          "xmlPureComponent": false
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.drive.service.impl.NuxeoDriveManagerImpl--changeFinder",
              "hierarchyPath": "/grp:org.nuxeo.ecm/grp:org.nuxeo.drive/org.nuxeo.drive.core/org.nuxeo.drive.change.finder/Contributions/org.nuxeo.drive.change.finder--changeFinder",
              "id": "org.nuxeo.drive.change.finder--changeFinder",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.drive.service.impl.NuxeoDriveManagerImpl",
                "name": "org.nuxeo.drive.service.impl.NuxeoDriveManagerImpl",
                "type": "service"
              },
              "version": "2023.22.13",
              "xml": "<extension point=\"changeFinder\" target=\"org.nuxeo.drive.service.impl.NuxeoDriveManagerImpl\">\n    <changeFinder class=\"org.nuxeo.drive.service.impl.AuditChangeFinder\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm/grp:org.nuxeo.drive/org.nuxeo.drive.core/org.nuxeo.drive.change.finder",
          "name": "org.nuxeo.drive.change.finder",
          "requirements": [],
          "resolutionOrder": 186,
          "services": [],
          "startOrder": 70,
          "version": "2023.22.13",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.drive.change.finder\" version=\"1.0\">\n\n  <extension target=\"org.nuxeo.drive.service.impl.NuxeoDriveManagerImpl\"\n    point=\"changeFinder\">\n    <changeFinder class=\"org.nuxeo.drive.service.impl.AuditChangeFinder\" />\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/nuxeodrive-change-finder-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.schema.TypeService--schema",
              "hierarchyPath": "/grp:org.nuxeo.ecm/grp:org.nuxeo.drive/org.nuxeo.drive.core/org.nuxeo.drive.coreTypes/Contributions/org.nuxeo.drive.coreTypes--schema",
              "id": "org.nuxeo.drive.coreTypes--schema",
              "registrationOrder": 7,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.schema.TypeService",
                "name": "org.nuxeo.ecm.core.schema.TypeService",
                "type": "service"
              },
              "version": "2023.22.13",
              "xml": "<extension point=\"schema\" target=\"org.nuxeo.ecm.core.schema.TypeService\">\n    <schema name=\"driveroot\" prefix=\"drv\" src=\"schema/driveroot.xsd\"/>\n\n    <property indexOrder=\"ascending\" name=\"subscriptions/*/enabled\" schema=\"driveroot\"/>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.schema.TypeService--doctype",
              "hierarchyPath": "/grp:org.nuxeo.ecm/grp:org.nuxeo.drive/org.nuxeo.drive.core/org.nuxeo.drive.coreTypes/Contributions/org.nuxeo.drive.coreTypes--doctype",
              "id": "org.nuxeo.drive.coreTypes--doctype",
              "registrationOrder": 7,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.schema.TypeService",
                "name": "org.nuxeo.ecm.core.schema.TypeService",
                "type": "service"
              },
              "version": "2023.22.13",
              "xml": "<extension point=\"doctype\" target=\"org.nuxeo.ecm.core.schema.TypeService\">\n\n    <!-- facet used to store drive metadata on folderish documents that act\n      as synchronization roots -->\n    <facet name=\"DriveSynchronized\">\n      <schema name=\"driveroot\"/>\n    </facet>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm/grp:org.nuxeo.drive/org.nuxeo.drive.core/org.nuxeo.drive.coreTypes",
          "name": "org.nuxeo.drive.coreTypes",
          "requirements": [],
          "resolutionOrder": 187,
          "services": [],
          "startOrder": 72,
          "version": "2023.22.13",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.drive.coreTypes\" version=\"1.0\">\n\n  <extension target=\"org.nuxeo.ecm.core.schema.TypeService\"\n    point=\"schema\">\n    <schema name=\"driveroot\" prefix=\"drv\" src=\"schema/driveroot.xsd\" />\n\n    <property schema=\"driveroot\" name=\"subscriptions/*/enabled\" indexOrder=\"ascending\" />\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.core.schema.TypeService\"\n    point=\"doctype\">\n\n    <!-- facet used to store drive metadata on folderish documents that act\n      as synchronization roots -->\n    <facet name=\"DriveSynchronized\">\n      <schema name=\"driveroot\" />\n    </facet>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/nuxeodrive-core-types.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentation": "\n      Notify the NuxeoDriveManager service to invalidate\n      it's cache when a document is deleted (physically or just the\n      trash).\n\n      @author Olivier Grisel\n    \n",
              "documentationHtml": "<p>\nNotify the NuxeoDriveManager service to invalidate\nit&#39;s cache when a document is deleted (physically or just the\ntrash).\n</p><p></p>",
              "extensionPoint": "org.nuxeo.ecm.core.event.EventServiceComponent--listener",
              "hierarchyPath": "/grp:org.nuxeo.ecm/grp:org.nuxeo.drive/org.nuxeo.drive.core/org.nuxeo.drive.listeners/Contributions/org.nuxeo.drive.listeners--listener",
              "id": "org.nuxeo.drive.listeners--listener",
              "registrationOrder": 13,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.event.EventServiceComponent",
                "name": "org.nuxeo.ecm.core.event.EventServiceComponent",
                "type": "service"
              },
              "version": "2023.22.13",
              "xml": "<extension point=\"listener\" target=\"org.nuxeo.ecm.core.event.EventServiceComponent\">\n    <documentation>\n      Notify the NuxeoDriveManager service to invalidate\n      it's cache when a document is deleted (physically or just the\n      trash).\n\n      @author Olivier Grisel\n    </documentation>\n\n    <listener async=\"false\" class=\"org.nuxeo.drive.listener.NuxeoDriveCacheInvalidationListener\" name=\"nuxeoDriveCacheInvalidationListener\" postCommit=\"false\" priority=\"300\">\n      <event>lifecycle_transition_event</event>\n      <event>documentTrashed</event>\n      <event>documentUntrashed</event>\n      <event>documentRemoved</event>\n      <event>documentSecurityUpdated</event>\n      <event>addedToCollection</event>\n      <event>removedFromCollection</event>\n    </listener>\n\n    <documentation>\n      Handle document removal or root unregistration in\n      order to be able to\n      populate the audit log and hence compute\n      consistent change\n      summaries for each user.\n\n      @author Olivier Grisel\n    </documentation>\n    <listener async=\"false\" class=\"org.nuxeo.drive.listener.NuxeoDriveFileSystemDeletionListener\" name=\"nuxeoDriveFileSystemDeletionListener\" postCommit=\"false\" priority=\"200\">\n      <event>beforeDocumentModification</event>\n      <event>aboutToMove</event>\n      <event>lifecycle_transition_event</event>\n      <event>documentTrashed</event>\n      <event>aboutToRemove</event>\n      <event>beforeDocumentSecurityModification</event>\n      <event>aboutToUnregisterRoot</event>\n      <event>beforeRemovedFromCollection</event>\n      <event>groupUpdated</event>\n    </listener>\n\n    <documentation>\n      Populate the audit log with virtual events generated by the nuxeoDriveFileSystemDeletionListener.\n\n      @author Antoine Taillefer\n    </documentation>\n    <listener async=\"true\" class=\"org.nuxeo.drive.listener.NuxeoDriveVirtualEventLogger\" name=\"nuxeoDriveVirtualEventLoggerListener\" postCommit=\"true\"/>\n\n    <documentation>\n      Handle group change events fired by the UserManager.\n\n      @author Antoine Taillefer\n    </documentation>\n    <listener async=\"true\" class=\"org.nuxeo.drive.listener.NuxeoDriveGroupUpdateListener\" name=\"nuxeoDriveGroupUpdateListener\" postCommit=\"true\">\n      <event>group_created</event>\n      <event>group_deleted</event>\n      <event>group_modified</event>\n    </listener>\n\n    <documentation>\n      Reset synchronization root registrations on a copied document and its children.\n    </documentation>\n    <listener async=\"false\" class=\"org.nuxeo.drive.listener.NuxeoDriveSyncRootCopyListener\" name=\"nuxeoDriveSyncRootCopyListener\" postCommit=\"false\">\n      <event>documentCreatedByCopy</event>\n    </listener>\n\n    <documentation>\n      Reset synchronization root registrations on a versioned document.\n    </documentation>\n    <listener async=\"false\" class=\"org.nuxeo.drive.listener.NuxeoDriveSyncRootVersioningListener\" name=\"nuxeoDriveSyncRootVersioningListener\" postCommit=\"false\">\n      <event>documentCheckedIn</event>\n    </listener>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--event",
              "hierarchyPath": "/grp:org.nuxeo.ecm/grp:org.nuxeo.drive/org.nuxeo.drive.core/org.nuxeo.drive.listeners/Contributions/org.nuxeo.drive.listeners--event",
              "id": "org.nuxeo.drive.listeners--event",
              "registrationOrder": 2,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.audit.service.NXAuditEventsService",
                "name": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService",
                "type": "service"
              },
              "version": "2023.22.13",
              "xml": "<extension point=\"event\" target=\"org.nuxeo.ecm.platform.audit.service.NXAuditEventsService\">\n    <event name=\"rootRegistered\"/>\n    <event name=\"rootUnregistered\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm/grp:org.nuxeo.drive/org.nuxeo.drive.core/org.nuxeo.drive.listeners",
          "name": "org.nuxeo.drive.listeners",
          "requirements": [],
          "resolutionOrder": 188,
          "services": [],
          "startOrder": 76,
          "version": "2023.22.13",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.drive.listeners\" version=\"1.0.0\">\n\n  <extension target=\"org.nuxeo.ecm.core.event.EventServiceComponent\" point=\"listener\">\n    <documentation>\n      Notify the NuxeoDriveManager service to invalidate\n      it's cache when a document is deleted (physically or just the\n      trash).\n\n      @author Olivier Grisel\n    </documentation>\n\n    <listener name=\"nuxeoDriveCacheInvalidationListener\" async=\"false\" postCommit=\"false\"\n      class=\"org.nuxeo.drive.listener.NuxeoDriveCacheInvalidationListener\" priority=\"300\">\n      <event>lifecycle_transition_event</event>\n      <event>documentTrashed</event>\n      <event>documentUntrashed</event>\n      <event>documentRemoved</event>\n      <event>documentSecurityUpdated</event>\n      <event>addedToCollection</event>\n      <event>removedFromCollection</event>\n    </listener>\n\n    <documentation>\n      Handle document removal or root unregistration in\n      order to be able to\n      populate the audit log and hence compute\n      consistent change\n      summaries for each user.\n\n      @author Olivier Grisel\n    </documentation>\n    <listener name=\"nuxeoDriveFileSystemDeletionListener\" async=\"false\" postCommit=\"false\"\n      class=\"org.nuxeo.drive.listener.NuxeoDriveFileSystemDeletionListener\" priority=\"200\">\n      <event>beforeDocumentModification</event>\n      <event>aboutToMove</event>\n      <event>lifecycle_transition_event</event>\n      <event>documentTrashed</event>\n      <event>aboutToRemove</event>\n      <event>beforeDocumentSecurityModification</event>\n      <event>aboutToUnregisterRoot</event>\n      <event>beforeRemovedFromCollection</event>\n      <event>groupUpdated</event>\n    </listener>\n\n    <documentation>\n      Populate the audit log with virtual events generated by the nuxeoDriveFileSystemDeletionListener.\n\n      @author Antoine Taillefer\n    </documentation>\n    <listener name=\"nuxeoDriveVirtualEventLoggerListener\" async=\"true\" postCommit=\"true\"\n      class=\"org.nuxeo.drive.listener.NuxeoDriveVirtualEventLogger\" />\n\n    <documentation>\n      Handle group change events fired by the UserManager.\n\n      @author Antoine Taillefer\n    </documentation>\n    <listener name=\"nuxeoDriveGroupUpdateListener\" async=\"true\" postCommit=\"true\"\n      class=\"org.nuxeo.drive.listener.NuxeoDriveGroupUpdateListener\">\n      <event>group_created</event>\n      <event>group_deleted</event>\n      <event>group_modified</event>\n    </listener>\n\n    <documentation>\n      Reset synchronization root registrations on a copied document and its children.\n    </documentation>\n    <listener name=\"nuxeoDriveSyncRootCopyListener\" async=\"false\" postCommit=\"false\"\n      class=\"org.nuxeo.drive.listener.NuxeoDriveSyncRootCopyListener\">\n      <event>documentCreatedByCopy</event>\n    </listener>\n\n    <documentation>\n      Reset synchronization root registrations on a versioned document.\n    </documentation>\n    <listener name=\"nuxeoDriveSyncRootVersioningListener\" async=\"false\" postCommit=\"false\"\n      class=\"org.nuxeo.drive.listener.NuxeoDriveSyncRootVersioningListener\">\n      <event>documentCheckedIn</event>\n    </listener>\n\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.platform.audit.service.NXAuditEventsService\" point=\"event\">\n    <event name=\"rootRegistered\" />\n    <event name=\"rootUnregistered\" />\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/nuxeodrive-listeners.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.drive.service.impl.FileSystemItemAdapterServiceImpl",
          "documentation": "\n    @author Antoine Taillefer (ataillefer@nuxeo.com)\n\n    This service allows to get a FileSystemItem from a\n    DocumentModel.\n\n    FileSystemItem is an adapter that provides methods to\n    get data from the document such as the binary content for a File\n    or the children items of a Folder.\n\n    It is used by Nuxeo Drive to fetch the needed data for synchronization.\n\n    Factories can be contributed to implement a specific behavior\n    for the FileSystemItem retrieval\n    depending on the document type or facet.\n  \n",
          "documentationHtml": "<p>\nThis service allows to get a FileSystemItem from a\nDocumentModel.\n</p><p>\nFileSystemItem is an adapter that provides methods to\nget data from the document such as the binary content for a File\nor the children items of a Folder.\n</p><p>\nIt is used by Nuxeo Drive to fetch the needed data for synchronization.\n</p><p>\nFactories can be contributed to implement a specific behavior\nfor the FileSystemItem retrieval\ndepending on the document type or facet.\n</p><p></p>",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.drive.service.FileSystemItemAdapterService",
              "descriptors": [
                "org.nuxeo.drive.service.impl.FileSystemItemFactoryDescriptor"
              ],
              "documentation": "\n      @author Antoine Taillefer (ataillefer@nuxeo.com)\n\n      This extension point lets you contribute custom\n      FileSystemItem factories according to a document\n      type or facet.\n\n      Example of the DefaultFileSystemItemFactory:\n      <code>\n    <extension point=\"fileSystemItemFactory\" target=\"org.nuxeo.drive.service.FileSystemItemAdapterService\">\n        <fileSystemItemFactory\n            class=\"org.nuxeo.drive.service.impl.DefaultFileSystemItemFactory\"\n            name=\"defaultFileSystemItemFactory\" order=\"50\">\n            <parameters>\n                <parameter name=\"versioningDelay\">3600</parameter>\n                <parameter name=\"versioningOption\">MINOR</parameter>\n            </parameters>\n        </fileSystemItemFactory>\n    </extension>\n</code>\n\n      Please note that `versioningDelay` and `versioningOption` parameter have been deprecated since 9.1 and are not\n      used anymore as automatic versioning is now handled at versioning service level.\n\n      Example of a FileSystemItem factory for documents with the Picture facet:\n      <code>\n    <extension point=\"fileSystemItemFactory\" target=\"org.nuxeo.drive.service.FileSystemItemAdapterService\">\n        <fileSystemItemFactory\n            class=\"org.nuxeo.drive.sample.PictureFileSystemItemFactory\"\n            facet=\"Picture\" name=\"picture\" order=\"100\"/>\n    </extension>\n</code>\n",
              "documentationHtml": "<p>\nThis extension point lets you contribute custom\nFileSystemItem factories according to a document\ntype or facet.\n</p><p>\nExample of the DefaultFileSystemItemFactory:\n</p><p></p><pre><code>    &lt;extension point&#61;&#34;fileSystemItemFactory&#34; target&#61;&#34;org.nuxeo.drive.service.FileSystemItemAdapterService&#34;&gt;\n        &lt;fileSystemItemFactory\n            class&#61;&#34;org.nuxeo.drive.service.impl.DefaultFileSystemItemFactory&#34;\n            name&#61;&#34;defaultFileSystemItemFactory&#34; order&#61;&#34;50&#34;&gt;\n            &lt;parameters&gt;\n                &lt;parameter name&#61;&#34;versioningDelay&#34;&gt;3600&lt;/parameter&gt;\n                &lt;parameter name&#61;&#34;versioningOption&#34;&gt;MINOR&lt;/parameter&gt;\n            &lt;/parameters&gt;\n        &lt;/fileSystemItemFactory&gt;\n    &lt;/extension&gt;\n</code></pre><p>\nPlease note that &#96;versioningDelay&#96; and &#96;versioningOption&#96; parameter have been deprecated since 9.1 and are not\nused anymore as automatic versioning is now handled at versioning service level.\n</p><p>\nExample of a FileSystemItem factory for documents with the Picture facet:\n</p><p></p><pre><code>    &lt;extension point&#61;&#34;fileSystemItemFactory&#34; target&#61;&#34;org.nuxeo.drive.service.FileSystemItemAdapterService&#34;&gt;\n        &lt;fileSystemItemFactory\n            class&#61;&#34;org.nuxeo.drive.sample.PictureFileSystemItemFactory&#34;\n            facet&#61;&#34;Picture&#34; name&#61;&#34;picture&#34; order&#61;&#34;100&#34;/&gt;\n    &lt;/extension&gt;\n</code></pre><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm/grp:org.nuxeo.drive/org.nuxeo.drive.core/org.nuxeo.drive.service.FileSystemItemAdapterService/ExtensionPoints/org.nuxeo.drive.service.FileSystemItemAdapterService--fileSystemItemFactory",
              "id": "org.nuxeo.drive.service.FileSystemItemAdapterService--fileSystemItemFactory",
              "label": "fileSystemItemFactory (org.nuxeo.drive.service.FileSystemItemAdapterService)",
              "name": "fileSystemItemFactory",
              "version": "2023.22.13"
            },
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.drive.service.FileSystemItemAdapterService",
              "descriptors": [
                "org.nuxeo.drive.service.impl.TopLevelFolderItemFactoryDescriptor"
              ],
              "documentation": "\n      @author Antoine Taillefer (ataillefer@nuxeo.com)\n\n      This extension point lets you contribute the factory\n      for the top level FolderItem.\n\n      Example of the DefaultTopLevelFolderItemFactory:\n      <code>\n    <extension point=\"topLevelFolderItemFactory\" target=\"org.nuxeo.drive.service.FileSystemItemAdapterService\">\n        <topLevelFolderItemFactory class=\"org.nuxeo.drive.service.impl.DefaultTopLevelFolderItemFactory\"/>\n    </extension>\n</code>\n",
              "documentationHtml": "<p>\nThis extension point lets you contribute the factory\nfor the top level FolderItem.\n</p><p>\nExample of the DefaultTopLevelFolderItemFactory:\n</p><p></p><pre><code>    &lt;extension point&#61;&#34;topLevelFolderItemFactory&#34; target&#61;&#34;org.nuxeo.drive.service.FileSystemItemAdapterService&#34;&gt;\n        &lt;topLevelFolderItemFactory class&#61;&#34;org.nuxeo.drive.service.impl.DefaultTopLevelFolderItemFactory&#34;/&gt;\n    &lt;/extension&gt;\n</code></pre><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm/grp:org.nuxeo.drive/org.nuxeo.drive.core/org.nuxeo.drive.service.FileSystemItemAdapterService/ExtensionPoints/org.nuxeo.drive.service.FileSystemItemAdapterService--topLevelFolderItemFactory",
              "id": "org.nuxeo.drive.service.FileSystemItemAdapterService--topLevelFolderItemFactory",
              "label": "topLevelFolderItemFactory (org.nuxeo.drive.service.FileSystemItemAdapterService)",
              "name": "topLevelFolderItemFactory",
              "version": "2023.22.13"
            },
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.drive.service.FileSystemItemAdapterService",
              "descriptors": [
                "org.nuxeo.drive.service.impl.ActiveFileSystemItemFactoriesDescriptor",
                "org.nuxeo.drive.service.impl.ActiveTopLevelFolderItemFactoryDescriptor"
              ],
              "documentation": "\n      @author Antoine Taillefer (ataillefer@nuxeo.com)\n\n      This extension point lets you contribute the active FileSystemItem factories.\n\n      Example of the default contribution:\n      <code>\n    <extension point=\"activeFileSystemItemFactories\" target=\"org.nuxeo.drive.service.FileSystemItemAdapterService\">\n        <activeTopLevelFolderItemFactory>org.nuxeo.drive.service.impl.DefaultTopLevelFolderItemFactory\n          </activeTopLevelFolderItemFactory>\n        <activeFileSystemItemFactories>\n            <factories>\n                <factory>defaultSyncRootFolderItemFactory</factory>\n                <factory>defaultFileSystemItemFactory</factory>\n            </factories>\n        </activeFileSystemItemFactories>\n    </extension>\n</code>\n\n\n      Example of a custom contribution:\n      <code>\n    <extension point=\"activeFileSystemItemFactories\" target=\"org.nuxeo.drive.service.FileSystemItemAdapterService\">\n        <activeTopLevelFolderItemFactory>org.nuxeo.drive.hierarchy.userworkspace.factory.UserWorkspaceTopLevelFactory\n          </activeTopLevelFolderItemFactory>\n        <activeFileSystemItemFactories merge=\"true\">\n            <factories>\n                <factory enabled=\"false\">defaultSyncRootFolderItemFactory</factory>\n                <factory>userWorkspaceSyncRootParentFactory</factory>\n                <factory>userWorkspaceSyncRootFactory</factory>\n            </factories>\n        </activeFileSystemItemFactories>\n    </extension>\n</code>\n",
              "documentationHtml": "<p>\nThis extension point lets you contribute the active FileSystemItem factories.\n</p><p>\nExample of the default contribution:\n</p><p></p><pre><code>    &lt;extension point&#61;&#34;activeFileSystemItemFactories&#34; target&#61;&#34;org.nuxeo.drive.service.FileSystemItemAdapterService&#34;&gt;\n        &lt;activeTopLevelFolderItemFactory&gt;org.nuxeo.drive.service.impl.DefaultTopLevelFolderItemFactory\n          &lt;/activeTopLevelFolderItemFactory&gt;\n        &lt;activeFileSystemItemFactories&gt;\n            &lt;factories&gt;\n                &lt;factory&gt;defaultSyncRootFolderItemFactory&lt;/factory&gt;\n                &lt;factory&gt;defaultFileSystemItemFactory&lt;/factory&gt;\n            &lt;/factories&gt;\n        &lt;/activeFileSystemItemFactories&gt;\n    &lt;/extension&gt;\n</code></pre><p>\nExample of a custom contribution:\n</p><p></p><pre><code>    &lt;extension point&#61;&#34;activeFileSystemItemFactories&#34; target&#61;&#34;org.nuxeo.drive.service.FileSystemItemAdapterService&#34;&gt;\n        &lt;activeTopLevelFolderItemFactory&gt;org.nuxeo.drive.hierarchy.userworkspace.factory.UserWorkspaceTopLevelFactory\n          &lt;/activeTopLevelFolderItemFactory&gt;\n        &lt;activeFileSystemItemFactories merge&#61;&#34;true&#34;&gt;\n            &lt;factories&gt;\n                &lt;factory enabled&#61;&#34;false&#34;&gt;defaultSyncRootFolderItemFactory&lt;/factory&gt;\n                &lt;factory&gt;userWorkspaceSyncRootParentFactory&lt;/factory&gt;\n                &lt;factory&gt;userWorkspaceSyncRootFactory&lt;/factory&gt;\n            &lt;/factories&gt;\n        &lt;/activeFileSystemItemFactories&gt;\n    &lt;/extension&gt;\n</code></pre><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm/grp:org.nuxeo.drive/org.nuxeo.drive.core/org.nuxeo.drive.service.FileSystemItemAdapterService/ExtensionPoints/org.nuxeo.drive.service.FileSystemItemAdapterService--activeFileSystemItemFactories",
              "id": "org.nuxeo.drive.service.FileSystemItemAdapterService--activeFileSystemItemFactories",
              "label": "activeFileSystemItemFactories (org.nuxeo.drive.service.FileSystemItemAdapterService)",
              "name": "activeFileSystemItemFactories",
              "version": "2023.22.13"
            }
          ],
          "extensions": [],
          "hierarchyPath": "/grp:org.nuxeo.ecm/grp:org.nuxeo.drive/org.nuxeo.drive.core/org.nuxeo.drive.service.FileSystemItemAdapterService",
          "name": "org.nuxeo.drive.service.FileSystemItemAdapterService",
          "requirements": [],
          "resolutionOrder": 189,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.drive.service.FileSystemItemAdapterService",
              "hierarchyPath": "/grp:org.nuxeo.ecm/grp:org.nuxeo.drive/org.nuxeo.drive.core/org.nuxeo.drive.service.FileSystemItemAdapterService/Services/org.nuxeo.drive.service.FileSystemItemAdapterService",
              "id": "org.nuxeo.drive.service.FileSystemItemAdapterService",
              "overriden": false,
              "version": "2023.22.13"
            }
          ],
          "startOrder": 787,
          "version": "2023.22.13",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.drive.service.FileSystemItemAdapterService\"\n  version=\"1.0\">\n\n  <documentation>\n    @author Antoine Taillefer (ataillefer@nuxeo.com)\n\n    This service allows to get a FileSystemItem from a\n    DocumentModel.\n\n    FileSystemItem is an adapter that provides methods to\n    get data from the document such as the binary content for a File\n    or the children items of a Folder.\n\n    It is used by Nuxeo Drive to fetch the needed data for synchronization.\n\n    Factories can be contributed to implement a specific behavior\n    for the FileSystemItem retrieval\n    depending on the document type or facet.\n  </documentation>\n\n  <service>\n    <provide interface=\"org.nuxeo.drive.service.FileSystemItemAdapterService\" />\n  </service>\n\n  <implementation\n    class=\"org.nuxeo.drive.service.impl.FileSystemItemAdapterServiceImpl\" />\n\n  <extension-point name=\"fileSystemItemFactory\">\n\n    <documentation>\n      @author Antoine Taillefer (ataillefer@nuxeo.com)\n\n      This extension point lets you contribute custom\n      FileSystemItem factories according to a document\n      type or facet.\n\n      Example of the DefaultFileSystemItemFactory:\n      <code>\n        <extension\n          target=\"org.nuxeo.drive.service.FileSystemItemAdapterService\"\n          point=\"fileSystemItemFactory\">\n          <fileSystemItemFactory name=\"defaultFileSystemItemFactory\" order=\"50\"\n            class=\"org.nuxeo.drive.service.impl.DefaultFileSystemItemFactory\">\n            <parameters>\n              <parameter name=\"versioningDelay\">3600</parameter>\n              <parameter name=\"versioningOption\">MINOR</parameter>\n            </parameters>\n          </fileSystemItemFactory>\n         </extension>\n      </code>\n      Please note that `versioningDelay` and `versioningOption` parameter have been deprecated since 9.1 and are not\n      used anymore as automatic versioning is now handled at versioning service level.\n\n      Example of a FileSystemItem factory for documents with the Picture facet:\n      <code>\n        <extension\n          target=\"org.nuxeo.drive.service.FileSystemItemAdapterService\"\n          point=\"fileSystemItemFactory\">\n          <fileSystemItemFactory name=\"picture\" facet=\"Picture\" order=\"100\"\n            class=\"org.nuxeo.drive.sample.PictureFileSystemItemFactory\" />\n         </extension>\n      </code>\n\n    </documentation>\n\n    <object class=\"org.nuxeo.drive.service.impl.FileSystemItemFactoryDescriptor\" />\n\n  </extension-point>\n\n  <extension-point name=\"topLevelFolderItemFactory\">\n\n    <documentation>\n      @author Antoine Taillefer (ataillefer@nuxeo.com)\n\n      This extension point lets you contribute the factory\n      for the top level FolderItem.\n\n      Example of the DefaultTopLevelFolderItemFactory:\n      <code>\n        <extension\n          target=\"org.nuxeo.drive.service.FileSystemItemAdapterService\"\n          point=\"topLevelFolderItemFactory\">\n          <topLevelFolderItemFactory class=\"org.nuxeo.drive.service.impl.DefaultTopLevelFolderItemFactory\" />\n         </extension>\n      </code>\n\n    </documentation>\n\n    <object class=\"org.nuxeo.drive.service.impl.TopLevelFolderItemFactoryDescriptor\" />\n\n  </extension-point>\n\n  <extension-point name=\"activeFileSystemItemFactories\">\n\n    <documentation>\n      @author Antoine Taillefer (ataillefer@nuxeo.com)\n\n      This extension point lets you contribute the active FileSystemItem factories.\n\n      Example of the default contribution:\n      <code>\n        <extension target=\"org.nuxeo.drive.service.FileSystemItemAdapterService\"\n          point=\"activeFileSystemItemFactories\">\n          <activeTopLevelFolderItemFactory>org.nuxeo.drive.service.impl.DefaultTopLevelFolderItemFactory\n          </activeTopLevelFolderItemFactory>\n          <activeFileSystemItemFactories>\n            <factories>\n              <factory>defaultSyncRootFolderItemFactory</factory>\n              <factory>defaultFileSystemItemFactory</factory>\n            </factories>\n          </activeFileSystemItemFactories>\n        </extension>\n      </code>\n\n      Example of a custom contribution:\n      <code>\n        <extension target=\"org.nuxeo.drive.service.FileSystemItemAdapterService\"\n          point=\"activeFileSystemItemFactories\">\n          <activeTopLevelFolderItemFactory>org.nuxeo.drive.hierarchy.userworkspace.factory.UserWorkspaceTopLevelFactory\n          </activeTopLevelFolderItemFactory>\n          <activeFileSystemItemFactories merge=\"true\">\n            <factories>\n              <factory enabled=\"false\">defaultSyncRootFolderItemFactory</factory>\n              <factory>userWorkspaceSyncRootParentFactory</factory>\n              <factory>userWorkspaceSyncRootFactory</factory>\n            </factories>\n          </activeFileSystemItemFactories>\n        </extension>\n      </code>\n\n    </documentation>\n\n    <object class=\"org.nuxeo.drive.service.impl.ActiveFileSystemItemFactoriesDescriptor\" />\n    <object class=\"org.nuxeo.drive.service.impl.ActiveTopLevelFolderItemFactoryDescriptor\" />\n\n  </extension-point>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/nuxeodrive-adapter-service.xml",
          "xmlPureComponent": false
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.api.DocumentAdapterService--adapters",
              "hierarchyPath": "/grp:org.nuxeo.ecm/grp:org.nuxeo.drive/org.nuxeo.drive.core/org.nuxeo.drive.adapters/Contributions/org.nuxeo.drive.adapters--adapters",
              "id": "org.nuxeo.drive.adapters--adapters",
              "registrationOrder": 6,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.api.DocumentAdapterService",
                "name": "org.nuxeo.ecm.core.api.DocumentAdapterService",
                "type": "service"
              },
              "version": "2023.22.13",
              "xml": "<extension point=\"adapters\" target=\"org.nuxeo.ecm.core.api.DocumentAdapterService\">\n\n    <adapter class=\"org.nuxeo.drive.adapter.FileSystemItem\" factory=\"org.nuxeo.drive.adapter.impl.FileSystemItemAdapterFactory\"/>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.drive.service.FileSystemItemAdapterService--fileSystemItemFactory",
              "hierarchyPath": "/grp:org.nuxeo.ecm/grp:org.nuxeo.drive/org.nuxeo.drive.core/org.nuxeo.drive.adapters/Contributions/org.nuxeo.drive.adapters--fileSystemItemFactory",
              "id": "org.nuxeo.drive.adapters--fileSystemItemFactory",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.drive.service.FileSystemItemAdapterService",
                "name": "org.nuxeo.drive.service.FileSystemItemAdapterService",
                "type": "service"
              },
              "version": "2023.22.13",
              "xml": "<extension point=\"fileSystemItemFactory\" target=\"org.nuxeo.drive.service.FileSystemItemAdapterService\">\n\n    <fileSystemItemFactory class=\"org.nuxeo.drive.service.impl.CollectionSyncRootFolderItemFactory\" facet=\"Collection\" name=\"collectionSyncRootFolderItemFactory\" order=\"5\"/>\n    <fileSystemItemFactory class=\"org.nuxeo.drive.service.impl.DefaultSyncRootFolderItemFactory\" facet=\"DriveSynchronized\" name=\"defaultSyncRootFolderItemFactory\" order=\"10\"/>\n    <fileSystemItemFactory class=\"org.nuxeo.drive.service.impl.DefaultFileSystemItemFactory\" name=\"defaultFileSystemItemFactory\" order=\"50\"/>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.drive.service.FileSystemItemAdapterService--topLevelFolderItemFactory",
              "hierarchyPath": "/grp:org.nuxeo.ecm/grp:org.nuxeo.drive/org.nuxeo.drive.core/org.nuxeo.drive.adapters/Contributions/org.nuxeo.drive.adapters--topLevelFolderItemFactory",
              "id": "org.nuxeo.drive.adapters--topLevelFolderItemFactory",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.drive.service.FileSystemItemAdapterService",
                "name": "org.nuxeo.drive.service.FileSystemItemAdapterService",
                "type": "service"
              },
              "version": "2023.22.13",
              "xml": "<extension point=\"topLevelFolderItemFactory\" target=\"org.nuxeo.drive.service.FileSystemItemAdapterService\">\n\n    <topLevelFolderItemFactory class=\"org.nuxeo.drive.service.impl.DefaultTopLevelFolderItemFactory\">\n      <parameters>\n        <parameter name=\"folderName\">Nuxeo Drive</parameter>\n      </parameters>\n    </topLevelFolderItemFactory>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.drive.service.FileSystemItemAdapterService--activeFileSystemItemFactories",
              "hierarchyPath": "/grp:org.nuxeo.ecm/grp:org.nuxeo.drive/org.nuxeo.drive.core/org.nuxeo.drive.adapters/Contributions/org.nuxeo.drive.adapters--activeFileSystemItemFactories",
              "id": "org.nuxeo.drive.adapters--activeFileSystemItemFactories",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.drive.service.FileSystemItemAdapterService",
                "name": "org.nuxeo.drive.service.FileSystemItemAdapterService",
                "type": "service"
              },
              "version": "2023.22.13",
              "xml": "<extension point=\"activeFileSystemItemFactories\" target=\"org.nuxeo.drive.service.FileSystemItemAdapterService\">\n\n    <activeTopLevelFolderItemFactory>org.nuxeo.drive.service.impl.DefaultTopLevelFolderItemFactory\n    </activeTopLevelFolderItemFactory>\n\n    <activeFileSystemItemFactories>\n      <factories>\n        <factory>collectionSyncRootFolderItemFactory</factory>\n        <factory>defaultSyncRootFolderItemFactory</factory>\n        <factory>defaultFileSystemItemFactory</factory>\n      </factories>\n    </activeFileSystemItemFactories>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm/grp:org.nuxeo.drive/org.nuxeo.drive.core/org.nuxeo.drive.adapters",
          "name": "org.nuxeo.drive.adapters",
          "requirements": [],
          "resolutionOrder": 190,
          "services": [],
          "startOrder": 64,
          "version": "2023.22.13",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.drive.adapters\" version=\"1.0\">\n\n  <extension target=\"org.nuxeo.ecm.core.api.DocumentAdapterService\" point=\"adapters\">\n\n    <adapter class=\"org.nuxeo.drive.adapter.FileSystemItem\" factory=\"org.nuxeo.drive.adapter.impl.FileSystemItemAdapterFactory\" />\n\n  </extension>\n\n  <extension target=\"org.nuxeo.drive.service.FileSystemItemAdapterService\" point=\"fileSystemItemFactory\">\n\n    <fileSystemItemFactory name=\"collectionSyncRootFolderItemFactory\" order=\"5\" facet=\"Collection\"\n      class=\"org.nuxeo.drive.service.impl.CollectionSyncRootFolderItemFactory\" />\n    <fileSystemItemFactory name=\"defaultSyncRootFolderItemFactory\" order=\"10\" facet=\"DriveSynchronized\"\n      class=\"org.nuxeo.drive.service.impl.DefaultSyncRootFolderItemFactory\" />\n    <fileSystemItemFactory name=\"defaultFileSystemItemFactory\" order=\"50\"\n      class=\"org.nuxeo.drive.service.impl.DefaultFileSystemItemFactory\" />\n\n  </extension>\n\n  <extension target=\"org.nuxeo.drive.service.FileSystemItemAdapterService\" point=\"topLevelFolderItemFactory\">\n\n    <topLevelFolderItemFactory class=\"org.nuxeo.drive.service.impl.DefaultTopLevelFolderItemFactory\">\n      <parameters>\n        <parameter name=\"folderName\">Nuxeo Drive</parameter>\n      </parameters>\n    </topLevelFolderItemFactory>\n\n  </extension>\n\n  <extension target=\"org.nuxeo.drive.service.FileSystemItemAdapterService\" point=\"activeFileSystemItemFactories\">\n\n    <activeTopLevelFolderItemFactory>org.nuxeo.drive.service.impl.DefaultTopLevelFolderItemFactory\n    </activeTopLevelFolderItemFactory>\n\n    <activeFileSystemItemFactories>\n      <factories>\n        <factory>collectionSyncRootFolderItemFactory</factory>\n        <factory>defaultSyncRootFolderItemFactory</factory>\n        <factory>defaultFileSystemItemFactory</factory>\n      </factories>\n    </activeFileSystemItemFactories>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/nuxeodrive-adapter-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.bulk--actions",
              "hierarchyPath": "/grp:org.nuxeo.ecm/grp:org.nuxeo.drive/org.nuxeo.drive.core/org.nuxeo.drive.bulk.actions/Contributions/org.nuxeo.drive.bulk.actions--actions",
              "id": "org.nuxeo.drive.bulk.actions--actions",
              "registrationOrder": 5,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.bulk",
                "name": "org.nuxeo.ecm.core.bulk",
                "type": "service"
              },
              "version": "2023.22.13",
              "xml": "<extension point=\"actions\" target=\"org.nuxeo.ecm.core.bulk\">\n    <action batchSize=\"10\" bucketSize=\"100\" httpEnabled=\"false\" inputStream=\"bulk/driveFireGroupUpdatedEvent\" name=\"driveFireGroupUpdatedEvent\"/>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.runtime.stream.service--streamProcessor",
              "hierarchyPath": "/grp:org.nuxeo.ecm/grp:org.nuxeo.drive/org.nuxeo.drive.core/org.nuxeo.drive.bulk.actions/Contributions/org.nuxeo.drive.bulk.actions--streamProcessor",
              "id": "org.nuxeo.drive.bulk.actions--streamProcessor",
              "registrationOrder": 7,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.runtime.stream.service",
                "name": "org.nuxeo.runtime.stream.service",
                "type": "service"
              },
              "version": "2023.22.13",
              "xml": "<extension point=\"streamProcessor\" target=\"org.nuxeo.runtime.stream.service\">\n    <streamProcessor class=\"org.nuxeo.drive.action.FireGroupUpdatedEventAction\" defaultConcurrency=\"2\" defaultPartitions=\"4\" name=\"driveFireGroupUpdatedEvent\">\n      <policy continueOnFailure=\"true\" delay=\"1s\" maxDelay=\"10s\" maxRetries=\"3\" name=\"default\"/>\n    </streamProcessor>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm/grp:org.nuxeo.drive/org.nuxeo.drive.core/org.nuxeo.drive.bulk.actions",
          "name": "org.nuxeo.drive.bulk.actions",
          "requirements": [],
          "resolutionOrder": 191,
          "services": [],
          "startOrder": 69,
          "version": "2023.22.13",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.drive.bulk.actions\">\n\n  <extension target=\"org.nuxeo.ecm.core.bulk\" point=\"actions\">\n    <action name=\"driveFireGroupUpdatedEvent\" inputStream=\"bulk/driveFireGroupUpdatedEvent\" bucketSize=\"100\"\n      batchSize=\"10\" httpEnabled=\"false\" />\n  </extension>\n\n  <extension target=\"org.nuxeo.runtime.stream.service\"\n    point=\"streamProcessor\">\n    <streamProcessor name=\"driveFireGroupUpdatedEvent\" class=\"org.nuxeo.drive.action.FireGroupUpdatedEventAction\"\n      defaultConcurrency=\"${nuxeo.bulk.action.driveFireGroupUpdatedEvent.defaultConcurrency:=2}\"\n      defaultPartitions=\"${nuxeo.bulk.action.driveFireGroupUpdatedEvent.defaultPartitions:=4}\">\n      <policy name=\"default\" maxRetries=\"3\" delay=\"1s\" maxDelay=\"10s\" continueOnFailure=\"true\" />\n    </streamProcessor>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/nuxeodrive-bulk-action-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.query.api.PageProviderService--providers",
              "hierarchyPath": "/grp:org.nuxeo.ecm/grp:org.nuxeo.drive/org.nuxeo.drive.core/org.nuxeo.drive.pageproviders/Contributions/org.nuxeo.drive.pageproviders--providers",
              "id": "org.nuxeo.drive.pageproviders--providers",
              "registrationOrder": 4,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.query.api.PageProviderService",
                "name": "org.nuxeo.ecm.platform.query.api.PageProviderService",
                "type": "service"
              },
              "version": "2023.22.13",
              "xml": "<extension point=\"providers\" target=\"org.nuxeo.ecm.platform.query.api.PageProviderService\">\n\n    <coreQueryPageProvider name=\"FOLDER_ITEM_CHILDREN\">\n      <pattern>\n        SELECT * FROM Document WHERE ecm:parentId = ?\n        AND ecm:isVersion = 0\n        AND ecm:isTrashed = 0\n        AND ecm:mixinType != 'HiddenInNavigation'\n      </pattern>\n      <sort ascending=\"true\" column=\"dc:created\"/>\n      <pageSize>1000</pageSize>\n      <maxPageSize>1000</maxPageSize>\n      <property name=\"maxResults\">PAGE_SIZE</property>\n    </coreQueryPageProvider>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm/grp:org.nuxeo.drive/org.nuxeo.drive.core/org.nuxeo.drive.pageproviders",
          "name": "org.nuxeo.drive.pageproviders",
          "requirements": [],
          "resolutionOrder": 192,
          "services": [],
          "startOrder": 78,
          "version": "2023.22.13",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.drive.pageproviders\" version=\"1.0\">\n\n  <extension target=\"org.nuxeo.ecm.platform.query.api.PageProviderService\"\n    point=\"providers\">\n\n    <coreQueryPageProvider name=\"FOLDER_ITEM_CHILDREN\">\n      <pattern>\n        SELECT * FROM Document WHERE ecm:parentId = ?\n        AND ecm:isVersion = 0\n        AND ecm:isTrashed = 0\n        AND ecm:mixinType != 'HiddenInNavigation'\n      </pattern>\n      <sort column=\"dc:created\" ascending=\"true\" />\n      <pageSize>1000</pageSize>\n      <maxPageSize>1000</maxPageSize>\n      <property name=\"maxResults\">PAGE_SIZE</property>\n    </coreQueryPageProvider>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/nuxeodrive-pageproviders-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.drive.service.impl.FileSystemItemManagerImpl",
          "documentation": "\n    @author Antoine Taillefer(ataillefer@nuxeo.com)\n\n    This service provides an API to manage usual file system operations\n    on a FileSystemItem given its id.\n    It allows the following actions:\n    - check if an item exists\n    - get an item\n    - get a folder's children\n    - create a folder\n    - create a file\n    - update a file\n    - delete an item\n    - rename an item\n    - move an item\n    - copy an item\n\n    It is used by Nuxeo Drive to synchronize a client device with the server.\n  \n",
          "documentationHtml": "<p>\nThis service provides an API to manage usual file system operations\non a FileSystemItem given its id.\nIt allows the following actions:\n- check if an item exists\n- get an item\n- get a folder&#39;s children\n- create a folder\n- create a file\n- update a file\n- delete an item\n- rename an item\n- move an item\n- copy an item\n</p><p>\nIt is used by Nuxeo Drive to synchronize a client device with the server.\n</p><p></p>",
          "extensionPoints": [],
          "extensions": [],
          "hierarchyPath": "/grp:org.nuxeo.ecm/grp:org.nuxeo.drive/org.nuxeo.drive.core/org.nuxeo.drive.service.FileSystemItemManager",
          "name": "org.nuxeo.drive.service.FileSystemItemManager",
          "requirements": [],
          "resolutionOrder": 193,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.drive.service.FileSystemItemManager",
              "hierarchyPath": "/grp:org.nuxeo.ecm/grp:org.nuxeo.drive/org.nuxeo.drive.core/org.nuxeo.drive.service.FileSystemItemManager/Services/org.nuxeo.drive.service.FileSystemItemManager",
              "id": "org.nuxeo.drive.service.FileSystemItemManager",
              "overriden": false,
              "version": "2023.22.13"
            }
          ],
          "startOrder": 79,
          "version": "2023.22.13",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.drive.service.FileSystemItemManager\"\n  version=\"1.0\">\n\n  <documentation>\n    @author Antoine Taillefer(ataillefer@nuxeo.com)\n\n    This service provides an API to manage usual file system operations\n    on a FileSystemItem given its id.\n    It allows the following actions:\n    - check if an item exists\n    - get an item\n    - get a folder's children\n    - create a folder\n    - create a file\n    - update a file\n    - delete an item\n    - rename an item\n    - move an item\n    - copy an item\n\n    It is used by Nuxeo Drive to synchronize a client device with the server.\n  </documentation>\n\n  <service>\n    <provide interface=\"org.nuxeo.drive.service.FileSystemItemManager\" />\n  </service>\n\n  <implementation\n    class=\"org.nuxeo.drive.service.impl.FileSystemItemManagerImpl\" />\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/nuxeodrive-filesystemitem-service.xml",
          "xmlPureComponent": false
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.drive.service.FileSystemItemAdapterService--topLevelFolderItemFactory",
              "hierarchyPath": "/grp:org.nuxeo.ecm/grp:org.nuxeo.drive/org.nuxeo.drive.core/org.nuxeo.drive.adapters.hierarchy.userworkspace/Contributions/org.nuxeo.drive.adapters.hierarchy.userworkspace--topLevelFolderItemFactory",
              "id": "org.nuxeo.drive.adapters.hierarchy.userworkspace--topLevelFolderItemFactory",
              "registrationOrder": 1,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.drive.service.FileSystemItemAdapterService",
                "name": "org.nuxeo.drive.service.FileSystemItemAdapterService",
                "type": "service"
              },
              "version": "2023.22.13",
              "xml": "<extension point=\"topLevelFolderItemFactory\" target=\"org.nuxeo.drive.service.FileSystemItemAdapterService\">\n    <topLevelFolderItemFactory class=\"org.nuxeo.drive.hierarchy.userworkspace.factory.UserWorkspaceTopLevelFactory\">\n      <parameters>\n        <parameter name=\"folderName\">Nuxeo Drive</parameter>\n        <parameter name=\"syncRootParentFactory\">userWorkspaceSyncRootParentFactory\n        </parameter>\n      </parameters>\n    </topLevelFolderItemFactory>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.drive.service.FileSystemItemAdapterService--fileSystemItemFactory",
              "hierarchyPath": "/grp:org.nuxeo.ecm/grp:org.nuxeo.drive/org.nuxeo.drive.core/org.nuxeo.drive.adapters.hierarchy.userworkspace/Contributions/org.nuxeo.drive.adapters.hierarchy.userworkspace--fileSystemItemFactory",
              "id": "org.nuxeo.drive.adapters.hierarchy.userworkspace--fileSystemItemFactory",
              "registrationOrder": 1,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.drive.service.FileSystemItemAdapterService",
                "name": "org.nuxeo.drive.service.FileSystemItemAdapterService",
                "type": "service"
              },
              "version": "2023.22.13",
              "xml": "<extension point=\"fileSystemItemFactory\" target=\"org.nuxeo.drive.service.FileSystemItemAdapterService\">\n\n    <!-- Synchronization root parent factory: order before the \"userWorkspaceSyncRootFactory\"\n      that has an order of 40 and before the \"defaultFileSystemItemFactory\" that\n      has an order of 50 -->\n    <fileSystemItemFactory class=\"org.nuxeo.drive.hierarchy.userworkspace.factory.UserWorkspaceSyncRootParentFactory\" name=\"userWorkspaceSyncRootParentFactory\" order=\"30\">\n      <parameters>\n        <parameter name=\"folderName\">My synchronized folders</parameter>\n      </parameters>\n    </fileSystemItemFactory>\n\n    <!-- Synchronization root factory: order before the \"defaultFileSystemItemFactory\"\n      that has an order of 50 -->\n    <fileSystemItemFactory class=\"org.nuxeo.drive.hierarchy.userworkspace.factory.UserWorkspaceSyncRootFactory\" facet=\"DriveSynchronized\" name=\"userWorkspaceSyncRootFactory\" order=\"40\">\n      <parameters>\n        <parameter name=\"syncRootParentFactory\">userWorkspaceSyncRootParentFactory\n        </parameter>\n      </parameters>\n    </fileSystemItemFactory>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm/grp:org.nuxeo.drive/org.nuxeo.drive.core/org.nuxeo.drive.adapters.hierarchy.userworkspace",
          "name": "org.nuxeo.drive.adapters.hierarchy.userworkspace",
          "requirements": [
            "org.nuxeo.drive.adapters"
          ],
          "resolutionOrder": 194,
          "services": [],
          "startOrder": 66,
          "version": "2023.22.13",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.drive.adapters.hierarchy.userworkspace\"\n  version=\"1.0\">\n\n  <require>org.nuxeo.drive.adapters</require>\n\n  <extension target=\"org.nuxeo.drive.service.FileSystemItemAdapterService\"\n    point=\"topLevelFolderItemFactory\">\n    <topLevelFolderItemFactory\n      class=\"org.nuxeo.drive.hierarchy.userworkspace.factory.UserWorkspaceTopLevelFactory\">\n      <parameters>\n        <parameter name=\"folderName\">Nuxeo Drive</parameter>\n        <parameter name=\"syncRootParentFactory\">userWorkspaceSyncRootParentFactory\n        </parameter>\n      </parameters>\n    </topLevelFolderItemFactory>\n  </extension>\n\n  <extension target=\"org.nuxeo.drive.service.FileSystemItemAdapterService\"\n    point=\"fileSystemItemFactory\">\n\n    <!-- Synchronization root parent factory: order before the \"userWorkspaceSyncRootFactory\"\n      that has an order of 40 and before the \"defaultFileSystemItemFactory\" that\n      has an order of 50 -->\n    <fileSystemItemFactory name=\"userWorkspaceSyncRootParentFactory\"\n      order=\"30\"\n      class=\"org.nuxeo.drive.hierarchy.userworkspace.factory.UserWorkspaceSyncRootParentFactory\">\n      <parameters>\n        <parameter name=\"folderName\">My synchronized folders</parameter>\n      </parameters>\n    </fileSystemItemFactory>\n\n    <!-- Synchronization root factory: order before the \"defaultFileSystemItemFactory\"\n      that has an order of 50 -->\n    <fileSystemItemFactory name=\"userWorkspaceSyncRootFactory\"\n      order=\"40\" facet=\"DriveSynchronized\"\n      class=\"org.nuxeo.drive.hierarchy.userworkspace.factory.UserWorkspaceSyncRootFactory\">\n      <parameters>\n        <parameter name=\"syncRootParentFactory\">userWorkspaceSyncRootParentFactory\n        </parameter>\n      </parameters>\n    </fileSystemItemFactory>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/nuxeodrive-hierarchy-userworkspace-adapter-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.drive.service.FileSystemItemAdapterService--topLevelFolderItemFactory",
              "hierarchyPath": "/grp:org.nuxeo.ecm/grp:org.nuxeo.drive/org.nuxeo.drive.core/org.nuxeo.drive.adapters.hierarchy.permission/Contributions/org.nuxeo.drive.adapters.hierarchy.permission--topLevelFolderItemFactory",
              "id": "org.nuxeo.drive.adapters.hierarchy.permission--topLevelFolderItemFactory",
              "registrationOrder": 2,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.drive.service.FileSystemItemAdapterService",
                "name": "org.nuxeo.drive.service.FileSystemItemAdapterService",
                "type": "service"
              },
              "version": "2023.22.13",
              "xml": "<extension point=\"topLevelFolderItemFactory\" target=\"org.nuxeo.drive.service.FileSystemItemAdapterService\">\n    <topLevelFolderItemFactory class=\"org.nuxeo.drive.hierarchy.permission.factory.PermissionTopLevelFactory\">\n      <parameters>\n        <parameter name=\"folderName\">Nuxeo Drive</parameter>\n        <parameter name=\"childrenFactories\">userSyncRootParentFactory,sharedSyncRootParentFactory\n        </parameter>\n      </parameters>\n    </topLevelFolderItemFactory>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.drive.service.FileSystemItemAdapterService--fileSystemItemFactory",
              "hierarchyPath": "/grp:org.nuxeo.ecm/grp:org.nuxeo.drive/org.nuxeo.drive.core/org.nuxeo.drive.adapters.hierarchy.permission/Contributions/org.nuxeo.drive.adapters.hierarchy.permission--fileSystemItemFactory",
              "id": "org.nuxeo.drive.adapters.hierarchy.permission--fileSystemItemFactory",
              "registrationOrder": 2,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.drive.service.FileSystemItemAdapterService",
                "name": "org.nuxeo.drive.service.FileSystemItemAdapterService",
                "type": "service"
              },
              "version": "2023.22.13",
              "xml": "<extension point=\"fileSystemItemFactory\" target=\"org.nuxeo.drive.service.FileSystemItemAdapterService\">\n\n    <!-- User synchronization root parent factory (user workspace): order\n      before the \"permissionSyncRootFactory\" that has an order of 40 and before\n      the \"defaultFileSystemItemFactory\" that has an order of 50 -->\n    <fileSystemItemFactory class=\"org.nuxeo.drive.hierarchy.permission.factory.UserSyncRootParentFactory\" name=\"userSyncRootParentFactory\" order=\"30\">\n      <parameters>\n        <parameter name=\"folderName\">My Docs</parameter>\n      </parameters>\n    </fileSystemItemFactory>\n\n    <!-- Synchronization root factory: order before the \"defaultFileSystemItemFactory\"\n      that has an order of 50 -->\n    <fileSystemItemFactory class=\"org.nuxeo.drive.hierarchy.permission.factory.PermissionSyncRootFactory\" facet=\"DriveSynchronized\" name=\"permissionSyncRootFactory\" order=\"40\">\n      <parameters>\n        <parameter name=\"requiredPermission\">Read</parameter>\n        <parameter name=\"userSyncRootParentFactory\">userSyncRootParentFactory</parameter>\n        <parameter name=\"sharedSyncRootParentFactory\">\n          sharedSyncRootParentFactory\n        </parameter>\n      </parameters>\n    </fileSystemItemFactory>\n\n    <!-- Shared synchronization root parent factory -->\n    <fileSystemItemFactory class=\"org.nuxeo.drive.hierarchy.permission.factory.SharedSyncRootParentFactory\" name=\"sharedSyncRootParentFactory\" order=\"100\">\n      <parameters>\n        <parameter name=\"folderName\">Other Docs</parameter>\n      </parameters>\n    </fileSystemItemFactory>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm/grp:org.nuxeo.drive/org.nuxeo.drive.core/org.nuxeo.drive.adapters.hierarchy.permission",
          "name": "org.nuxeo.drive.adapters.hierarchy.permission",
          "requirements": [
            "org.nuxeo.drive.adapters"
          ],
          "resolutionOrder": 195,
          "services": [],
          "startOrder": 65,
          "version": "2023.22.13",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.drive.adapters.hierarchy.permission\"\n  version=\"1.0\">\n\n  <require>org.nuxeo.drive.adapters</require>\n\n  <extension target=\"org.nuxeo.drive.service.FileSystemItemAdapterService\"\n    point=\"topLevelFolderItemFactory\">\n    <topLevelFolderItemFactory\n      class=\"org.nuxeo.drive.hierarchy.permission.factory.PermissionTopLevelFactory\">\n      <parameters>\n        <parameter name=\"folderName\">Nuxeo Drive</parameter>\n        <parameter name=\"childrenFactories\">userSyncRootParentFactory,sharedSyncRootParentFactory\n        </parameter>\n      </parameters>\n    </topLevelFolderItemFactory>\n  </extension>\n\n  <extension target=\"org.nuxeo.drive.service.FileSystemItemAdapterService\"\n    point=\"fileSystemItemFactory\">\n\n    <!-- User synchronization root parent factory (user workspace): order\n      before the \"permissionSyncRootFactory\" that has an order of 40 and before\n      the \"defaultFileSystemItemFactory\" that has an order of 50 -->\n    <fileSystemItemFactory name=\"userSyncRootParentFactory\"\n      order=\"30\"\n      class=\"org.nuxeo.drive.hierarchy.permission.factory.UserSyncRootParentFactory\">\n      <parameters>\n        <parameter name=\"folderName\">My Docs</parameter>\n      </parameters>\n    </fileSystemItemFactory>\n\n    <!-- Synchronization root factory: order before the \"defaultFileSystemItemFactory\"\n      that has an order of 50 -->\n    <fileSystemItemFactory name=\"permissionSyncRootFactory\"\n      order=\"40\" facet=\"DriveSynchronized\"\n      class=\"org.nuxeo.drive.hierarchy.permission.factory.PermissionSyncRootFactory\">\n      <parameters>\n        <parameter name=\"requiredPermission\">Read</parameter>\n        <parameter name=\"userSyncRootParentFactory\">userSyncRootParentFactory</parameter>\n        <parameter name=\"sharedSyncRootParentFactory\">\n          sharedSyncRootParentFactory\n        </parameter>\n      </parameters>\n    </fileSystemItemFactory>\n\n    <!-- Shared synchronization root parent factory -->\n    <fileSystemItemFactory name=\"sharedSyncRootParentFactory\"\n      order=\"100\"\n      class=\"org.nuxeo.drive.hierarchy.permission.factory.SharedSyncRootParentFactory\">\n      <parameters>\n        <parameter name=\"folderName\">Other Docs</parameter>\n      </parameters>\n    </fileSystemItemFactory>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/nuxeodrive-hierarchy-permission-adapter-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentation": "\n      If true, when adapting a document to a FileSystemItem, don't perform the RemoveChildren check on the\n      parent to compute canDelete nor the check on AddChildren to compute canCreateChild.\n\n      @since 8.10\n    \n",
              "documentationHtml": "<p>\nIf true, when adapting a document to a FileSystemItem, don&#39;t perform the RemoveChildren check on the\nparent to compute canDelete nor the check on AddChildren to compute canCreateChild.\n</p><p>\n&#64;since 8.10\n</p><p></p>",
              "extensionPoint": "org.nuxeo.runtime.ConfigurationService--configuration",
              "hierarchyPath": "/grp:org.nuxeo.ecm/grp:org.nuxeo.drive/org.nuxeo.drive.core/org.nuxeo.drive.configuration.service/Contributions/org.nuxeo.drive.configuration.service--configuration",
              "id": "org.nuxeo.drive.configuration.service--configuration",
              "registrationOrder": 26,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.runtime.ConfigurationService",
                "name": "org.nuxeo.runtime.ConfigurationService",
                "type": "service"
              },
              "version": "2023.22.13",
              "xml": "<extension point=\"configuration\" target=\"org.nuxeo.runtime.ConfigurationService\">\n    <documentation>\n      If true, when adapting a document to a FileSystemItem, don't perform the RemoveChildren check on the\n      parent to compute canDelete nor the check on AddChildren to compute canCreateChild.\n\n      @since 8.10\n    </documentation>\n    <property name=\"org.nuxeo.drive.permissionCheckOptimized\">true</property>\n\n    <documentation>\n      If true, reset synchronization root registrations on a copied document and its children.\n\n      @since 9.1\n    </documentation>\n    <property name=\"org.nuxeo.drive.resetSyncRootsOnCopy\">true</property>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm/grp:org.nuxeo.drive/org.nuxeo.drive.core/org.nuxeo.drive.configuration.service",
          "name": "org.nuxeo.drive.configuration.service",
          "requirements": [],
          "resolutionOrder": 196,
          "services": [],
          "startOrder": 71,
          "version": "2023.22.13",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.drive.configuration.service\" version=\"1.0\">\n\n  <extension target=\"org.nuxeo.runtime.ConfigurationService\" point=\"configuration\">\n    <documentation>\n      If true, when adapting a document to a FileSystemItem, don't perform the RemoveChildren check on the\n      parent to compute canDelete nor the check on AddChildren to compute canCreateChild.\n\n      @since 8.10\n    </documentation>\n    <property name=\"org.nuxeo.drive.permissionCheckOptimized\">true</property>\n\n    <documentation>\n      If true, reset synchronization root registrations on a copied document and its children.\n\n      @since 9.1\n    </documentation>\n    <property name=\"org.nuxeo.drive.resetSyncRootsOnCopy\">true</property>\n  </extension>\n\n</component>",
          "xmlFileName": "/OSGI-INF/nuxeodrive-configurationservice-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.api.versioning.VersioningService--policies",
              "hierarchyPath": "/grp:org.nuxeo.ecm/grp:org.nuxeo.drive/org.nuxeo.drive.core/org.nuxeo.drive.versioning/Contributions/org.nuxeo.drive.versioning--policies",
              "id": "org.nuxeo.drive.versioning--policies",
              "registrationOrder": 1,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.api.versioning.VersioningService",
                "name": "org.nuxeo.ecm.core.api.versioning.VersioningService",
                "type": "service"
              },
              "version": "2023.22.13",
              "xml": "<extension point=\"policies\" target=\"org.nuxeo.ecm.core.api.versioning.VersioningService\">\n    <policy beforeUpdate=\"true\" id=\"versioning-delay\" increment=\"MINOR\" order=\"150\">\n      <filter-id>versioning-delay</filter-id>\n      <filter-id>drive-filter</filter-id>\n      <filter-id>not-folderish</filter-id>\n    </policy>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.api.versioning.VersioningService--filters",
              "hierarchyPath": "/grp:org.nuxeo.ecm/grp:org.nuxeo.drive/org.nuxeo.drive.core/org.nuxeo.drive.versioning/Contributions/org.nuxeo.drive.versioning--filters",
              "id": "org.nuxeo.drive.versioning--filters",
              "registrationOrder": 1,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.api.versioning.VersioningService",
                "name": "org.nuxeo.ecm.core.api.versioning.VersioningService",
                "type": "service"
              },
              "version": "2023.22.13",
              "xml": "<extension point=\"filters\" target=\"org.nuxeo.ecm.core.api.versioning.VersioningService\">\n    <filter id=\"versioning-delay\">\n      <condition>#{currentDocument.dc.modified.time - previousDocument.dc.modified.time &gt;= 3600000}</condition>\n    </filter>\n    <filter id=\"drive-filter\">\n      <condition>#{currentDocument.contextData.source == \"drive\"}</condition>\n    </filter>\n    <filter id=\"not-drive-filter\">\n      <condition>#{currentDocument.contextData.source != \"drive\"}</condition>\n    </filter>\n    <filter id=\"not-folderish\">\n      <condition>#{!currentDocument.folder}</condition>\n    </filter>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm/grp:org.nuxeo.drive/org.nuxeo.drive.core/org.nuxeo.drive.versioning",
          "name": "org.nuxeo.drive.versioning",
          "requirements": [
            "org.nuxeo.ecm.core.versioning.default-policies"
          ],
          "resolutionOrder": 197,
          "services": [],
          "startOrder": 80,
          "version": "2023.22.13",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.drive.versioning\" version=\"1.0\">\n\n  <require>org.nuxeo.ecm.core.versioning.default-policies</require>\n\n  <extension target=\"org.nuxeo.ecm.core.api.versioning.VersioningService\" point=\"policies\">\n    <policy id=\"versioning-delay\" increment=\"MINOR\" beforeUpdate=\"true\" order=\"150\">\n      <filter-id>versioning-delay</filter-id>\n      <filter-id>drive-filter</filter-id>\n      <filter-id>not-folderish</filter-id>\n    </policy>\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.core.api.versioning.VersioningService\" point=\"filters\">\n    <filter id=\"versioning-delay\">\n      <condition>#{currentDocument.dc.modified.time - previousDocument.dc.modified.time >= 3600000}</condition>\n    </filter>\n    <filter id=\"drive-filter\">\n      <condition>#{currentDocument.contextData.source == \"drive\"}</condition>\n    </filter>\n    <filter id=\"not-drive-filter\">\n      <condition>#{currentDocument.contextData.source != \"drive\"}</condition>\n    </filter>\n    <filter id=\"not-folderish\">\n      <condition>#{!currentDocument.folder}</condition>\n    </filter>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/nuxeodrive-versioning-policy-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService--startURL",
              "hierarchyPath": "/grp:org.nuxeo.ecm/grp:org.nuxeo.drive/org.nuxeo.drive.core/org.nuxeo.drive.auth/Contributions/org.nuxeo.drive.auth--startURL",
              "id": "org.nuxeo.drive.auth--startURL",
              "registrationOrder": 1,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService",
                "name": "org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService",
                "type": "service"
              },
              "version": "2023.22.13",
              "xml": "<extension point=\"startURL\" target=\"org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService\">\n\n    <startURLPattern>\n      <patterns>\n        <pattern>drive_login.jsp</pattern>\n        <pattern>drive_browser_login.jsp</pattern>\n      </patterns>\n    </startURLPattern>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm/grp:org.nuxeo.drive/org.nuxeo.drive.core/org.nuxeo.drive.auth",
          "name": "org.nuxeo.drive.auth",
          "requirements": [],
          "resolutionOrder": 198,
          "services": [],
          "startOrder": 67,
          "version": "2023.22.13",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.drive.auth\">\n\n  <extension target=\"org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService\" point=\"startURL\">\n\n    <startURLPattern>\n      <patterns>\n        <pattern>drive_login.jsp</pattern>\n        <pattern>drive_browser_login.jsp</pattern>\n      </patterns>\n    </startURLPattern>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/nuxeodrive-authentication-contrib.xml",
          "xmlPureComponent": true
        }
      ],
      "fileName": "nuxeo-drive-core-2023.22.13.jar",
      "groupId": "org.nuxeo.ecm",
      "hierarchyPath": "/grp:org.nuxeo.ecm/grp:org.nuxeo.drive/org.nuxeo.drive.core",
      "id": "org.nuxeo.drive.core",
      "location": "",
      "manifest": "Manifest-Version: 1.0\r\nArchiver-Version: Plexus Archiver\r\nCreated-By: Apache Maven 3.9.6\r\nBuilt-By: root\r\nBuild-Jdk: 17.0.12\r\nBundle-ManifestVersion: 2\r\nBundle-Version: 5.7\r\nBundle-Vendor: Nuxeo\r\nBundle-ActivationPolicy: lazy\r\nBundle-ClassPath: .\r\nBundle-Name: org.nuxeo.drive.core\r\nNuxeo-Component: OSGI-INF/nuxeodrive-service.xml,OSGI-INF/nuxeodrive-cha\r\n nge-finder-contrib.xml,OSGI-INF/nuxeodrive-core-types.xml,OSGI-INF/nuxe\r\n odrive-listeners.xml,OSGI-INF/nuxeodrive-adapter-service.xml,OSGI-INF/n\r\n uxeodrive-adapter-contrib.xml,OSGI-INF/nuxeodrive-bulk-action-contrib.x\r\n ml,OSGI-INF/nuxeodrive-pageproviders-contrib.xml,OSGI-INF/nuxeodrive-fi\r\n lesystemitem-service.xml,OSGI-INF/nuxeodrive-hierarchy-userworkspace-ad\r\n apter-contrib.xml,OSGI-INF/nuxeodrive-hierarchy-permission-adapter-cont\r\n rib.xml,OSGI-INF/nuxeodrive-configurationservice-contrib.xml,OSGI-INF/n\r\n uxeodrive-versioning-policy-contrib.xml,OSGI-INF/nuxeodrive-authenticat\r\n ion-contrib.xml\r\nBundle-SymbolicName: org.nuxeo.drive.core;singleton:=true\r\nBundle-RequiredExecutionEnvironment: JavaSE-1.6\r\n\r\n",
      "maxResolutionOrder": 198,
      "minResolutionOrder": 185,
      "packages": [
        "nuxeo-drive"
      ],
      "parentReadme": {
        "blobProviderId": "default",
        "content": "# Nuxeo Drive Server\n\nAddon needed for [Nuxeo Drive](https://github.com/nuxeo/nuxeo-drive) to work against a Nuxeo Platform instance.\n\n# Building\n\n    mvn clean install\n\n## Deploying\n\nInstall [the Nuxeo Drive Marketplace Package](https://connect.nuxeo.com/nuxeo/site/marketplace/package/nuxeo-drive).\nOr manually copy the built artifacts into `$NUXEO_HOME/templates/custom/bundles/` and activate the \"custom\" template.\n\nYou should then have the 'Nuxeo Drive' tab in your Home allowing you to download the Nuxeo Drive client for your favorite OS :-)\n\n# About Nuxeo\n\nNuxeo dramatically improves how content-based applications are built, managed and deployed, making customers more agile, innovative and successful. Nuxeo provides a next generation, enterprise ready platform for building traditional and cutting-edge content oriented applications. Combining a powerful application development environment with SaaS-based tools and a modular architecture, the Nuxeo Platform and Products provide clear business value to some of the most recognizable brands including Verizon, Electronic Arts, Sharp, FICO, the U.S. Navy, and Boeing. Nuxeo is headquartered in New York and Paris. More information is available at www.nuxeo.com.\n",
        "digest": "306b3963ae3cd8b8df650083c958429f",
        "encoding": "UTF-8",
        "length": 1224,
        "mimeType": "text/plain",
        "name": "README.md"
      },
      "requirements": [],
      "version": "2023.22.13"
    }
  ],
  "creationDate": 1732717764661,
  "key": "Nuxeo Platform-2023.22",
  "name": "Nuxeo Platform",
  "operations": [],
  "packages": [
    {
      "@type": "NXPackage",
      "bundles": [
        "org.nuxeo.drive.core",
        "org.nuxeo.drive.elasticsearch",
        "org.nuxeo.drive.mongodb",
        "org.nuxeo.drive.operations",
        "org.nuxeo.drive.rest.api"
      ],
      "conflicts": [],
      "dependencies": [],
      "hierarchyPath": "/nuxeo-drive-2023.22.13",
      "id": "nuxeo-drive-2023.22.13",
      "name": "nuxeo-drive",
      "optionalDependencies": [],
      "packageType": "addon",
      "title": "Nuxeo Drive",
      "version": "2023.22.13"
    }
  ],
  "pluginSnapshots": {},
  "releaseDate": 1732717764661,
  "version": "2023.22"
}